package com.t.bricks.bussiness.db.entity.subsystemmonitor.base;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.t.bricks.annotation.DataInfo;

/**
 * 子系统运行监控'SubsystemMonitor'表实体类
 * 警告:非数据库字段禁止在此添加,应该创建扩展实体中添加
 * @author HuangXinBian
 */
@ApiModel("子系统运行监控SubsystemMonitor")
@DataInfo(sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor")
public class SubsystemMonitorBase implements Serializable {

	private static final long serialVersionUID = 1L;// 使用rmi时需修改

	/**
	 * 记录编号
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sId", sComment="记录编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=true, isNull=false,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=0 )
	@ApiModelProperty(value="记录编号", example="")
	//[end]
	protected String sId;

	/**
	 * 子程序名称
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sSubName", sComment="子程序名称", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=1 )
	@ApiModelProperty(value="子程序名称", example="")
	//[end]
	protected String sSubName;

	/**
	 * 状态分析
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sAnalysisState", sComment="状态分析", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=2 )
	@ApiModelProperty(value="状态分析", example="")
	//[end]
	protected String sAnalysisState;

	/**
	 * 最后访问时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="dLastVisitDate", sComment="最后访问时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=3 )
	@ApiModelProperty(value="最后访问时间", example="")
	//[end]
	protected Date dLastVisitDate;

	/**
	 * 最后启动时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="dLastStartDate", sComment="最后启动时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=4 )
	@ApiModelProperty(value="最后启动时间", example="")
	//[end]
	protected Date dLastStartDate;

	/**
	 * 最后上报状态
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sLastReportState", sComment="最后上报状态", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=5 )
	@ApiModelProperty(value="最后上报状态", example="")
	//[end]
	protected String sLastReportState;

	/**
	 * 更新间隔
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sIntervalTime", sComment="更新间隔", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=6 )
	@ApiModelProperty(value="更新间隔", example="")
	//[end]
	protected String sIntervalTime;

	/**
	 * ip地址
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sIp", sComment="ip地址", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=7 )
	@ApiModelProperty(value="ip地址", example="")
	//[end]
	protected String sIp;

	/**
	 * 启动次数
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="iStartNumber", sComment="启动次数", isDbField=true, sDbFileType="int",
		sDefaultData="0", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=8 )
	@ApiModelProperty(value="启动次数", example="0")
	//[end]
	protected Integer iStartNumber;

	/**
	 * 备注
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="sMemo", sComment="备注", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=200, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=9 )
	@ApiModelProperty(value="备注", example="")
	//[end]
	protected String sMemo;

	/**
	 * 状态
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="iState", sComment="状态", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=10 )
	@ApiModelProperty(value="状态", example="1")
	//[end]
	protected Integer iState;

	/**
	 * 序号
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="iIndex", sComment="序号", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=11 )
	@ApiModelProperty(value="序号", example="1")
	//[end]
	protected Integer iIndex;

	/**
	 * 版本号
	 */
	//[start]
	@DataInfo( sDbName="BricksCommonBusiness", sTableName="SubsystemMonitor",
		sName="iVersion", sComment="版本号", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=12 )
	@ApiModelProperty(value="版本号", example="1")
	//[end]
	protected Integer iVersion;

	/**
	 * 取 记录编号
	 * @return String
	 */
	public String getsId() {
		return sId;
	}

	/**
	 * 设置记录编号
	 * @param sId
	 */
	public void setsId(String sId) {
		this.sId = sId;
	}

	/**
	 * 取 子程序名称
	 * @return String
	 */
	public String getsSubName() {
		return sSubName;
	}

	/**
	 * 设置子程序名称
	 * @param sSubName
	 */
	public void setsSubName(String sSubName) {
		this.sSubName = sSubName;
	}

	/**
	 * 取 状态分析
	 * @return String
	 */
	public String getsAnalysisState() {
		return sAnalysisState;
	}

	/**
	 * 设置状态分析
	 * @param sAnalysisState
	 */
	public void setsAnalysisState(String sAnalysisState) {
		this.sAnalysisState = sAnalysisState;
	}

	/**
	 * 取 最后访问时间
	 * @return Date
	 */
	public Date getdLastVisitDate() {
		return dLastVisitDate;
	}

	/**
	 * 设置最后访问时间
	 * @param dLastVisitDate
	 */
	public void setdLastVisitDate(Date dLastVisitDate) {
		this.dLastVisitDate = dLastVisitDate;
	}

	/**
	 * 取 最后启动时间
	 * @return Date
	 */
	public Date getdLastStartDate() {
		return dLastStartDate;
	}

	/**
	 * 设置最后启动时间
	 * @param dLastStartDate
	 */
	public void setdLastStartDate(Date dLastStartDate) {
		this.dLastStartDate = dLastStartDate;
	}

	/**
	 * 取 最后上报状态
	 * @return String
	 */
	public String getsLastReportState() {
		return sLastReportState;
	}

	/**
	 * 设置最后上报状态
	 * @param sLastReportState
	 */
	public void setsLastReportState(String sLastReportState) {
		this.sLastReportState = sLastReportState;
	}

	/**
	 * 取 更新间隔
	 * @return String
	 */
	public String getsIntervalTime() {
		return sIntervalTime;
	}

	/**
	 * 设置更新间隔
	 * @param sIntervalTime
	 */
	public void setsIntervalTime(String sIntervalTime) {
		this.sIntervalTime = sIntervalTime;
	}

	/**
	 * 取 ip地址
	 * @return String
	 */
	public String getsIp() {
		return sIp;
	}

	/**
	 * 设置ip地址
	 * @param sIp
	 */
	public void setsIp(String sIp) {
		this.sIp = sIp;
	}

	/**
	 * 取 启动次数
	 * @return Integer
	 */
	public Integer getiStartNumber() {
		return iStartNumber;
	}

	/**
	 * 设置启动次数
	 * @param iStartNumber
	 */
	public void setiStartNumber(Integer iStartNumber) {
		this.iStartNumber = iStartNumber;
	}

	/**
	 * 取 备注
	 * @return String
	 */
	public String getsMemo() {
		return sMemo;
	}

	/**
	 * 设置备注
	 * @param sMemo
	 */
	public void setsMemo(String sMemo) {
		this.sMemo = sMemo;
	}

	/**
	 * 取 状态
	 * @return Integer
	 */
	public Integer getiState() {
		return iState;
	}

	/**
	 * 设置状态
	 * @param iState
	 */
	public void setiState(Integer iState) {
		this.iState = iState;
	}

	/**
	 * 取 序号
	 * @return Integer
	 */
	public Integer getiIndex() {
		return iIndex;
	}

	/**
	 * 设置序号
	 * @param iIndex
	 */
	public void setiIndex(Integer iIndex) {
		this.iIndex = iIndex;
	}

	/**
	 * 取 版本号
	 * @return Integer
	 */
	public Integer getiVersion() {
		return iVersion;
	}

	/**
	 * 设置版本号
	 * @param iVersion
	 */
	public void setiVersion(Integer iVersion) {
		this.iVersion = iVersion;
	}

	/**
	 * 复制对象
	 * @param source 数据源
	 * @return SubsystemMonitorBase
	 */
	public static SubsystemMonitorBase copy(SubsystemMonitorBase source) {
		if (null == source) {
			return null;
		}
		
		SubsystemMonitorBase target = new SubsystemMonitorBase();
		target.setsId(source.getsId());
		target.setsSubName(source.getsSubName());
		target.setsAnalysisState(source.getsAnalysisState());
		target.setdLastVisitDate(source.getdLastVisitDate());
		target.setdLastStartDate(source.getdLastStartDate());
		target.setsLastReportState(source.getsLastReportState());
		target.setsIntervalTime(source.getsIntervalTime());
		target.setsIp(source.getsIp());
		target.setiStartNumber(source.getiStartNumber());
		target.setsMemo(source.getsMemo());
		target.setiState(source.getiState());
		target.setiIndex(source.getiIndex());
		target.setiVersion(source.getiVersion());

		return target;
	}
	
	/**
	 * 克隆对象
	 * @return SubsystemMonitorBase
	 */
	public SubsystemMonitorBase clone() {
		return copy(this);
	}
	
}
